﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using Processes.Orden;
using Model.Orden;
using Model.Acta;
using DataBase.Acta;
namespace Interfaces.Acta
{
    public partial class Crear : System.Web.UI.Page
    {
        GestorOrden gestor;
        
        Order nro;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!User.Identity.IsAuthenticated)
                FormsAuthentication.RedirectToLoginPage();
            gestor = new GestorOrden();
            if (!IsPostBack)
            { 
                
                nro = new Order();
                nro = gestor.NroOrdenNoFueAsociada();
                if (nro == null)
                {
                    Response.Redirect("ErrorCreando.aspx");
                }
                else
                {
                    NroLabel.Text += nro.Nro;
                    FechaLabel.Text += nro.Fecha.ToShortDateString();
                    gestor.setAsociada(nro.Nro);
                    DataList1.DataSource = gestor.puntosDeNro(nro.Nro);
                    DataList1.DataBind();
                    Session["DataList"] = DataList1;
                    Session["Nro"] = nro;
                }
            }
            if (DataList1 != null)
                Session["DataList"] = DataList1;
        }
        protected void Page_PreInit(object sender, EventArgs e)
        {
            if (Session["BuscarMaster"] != null)
            {
               this.MasterPageFile = (string)Session["BuscarMaster"];
                
            }
        }
        protected void ButtonGuardar_Click(object sender, EventArgs e)
        {
            DataList1 = (DataList)Session["DataList"];
            nro = (Order)Session["Nro"];
            if(DataList1!=null)
            {
                int i = 0;
                List<Punto> puntos = new List<Punto>();
                foreach (DataListItem item in DataList1.Items)
                {
                    TextBox txb = (TextBox)item.FindControl("TextBox1");
                    Label nombre = (Label)item.FindControl("NombreDePunto");
                    Label numero = (Label)item.FindControl("NumeroPunto");
                    puntos.Add(new Punto());
                    puntos[i].NumeroPunto = numero.Text;
                    puntos[i].NombreDePunto = nombre.Text;
                    puntos[i].Contenido = txb.Text;
                    puntos[i].Nro = nro.Nro;
                    i++;
                }
                try
                {
                    if (gestor.SetOrden(nro.Fecha, nro.Nro, puntos))
                    {
                        Model.Acta.Acta acta = new Model.Acta.Acta();
                        acta.FechaUltimaModificacion = DateTime.Now;
                        acta.Nro = nro.Nro;
                        acta.VecesVista = 1;
                        DBActa.InsertarActa(acta);
                        Response.Redirect("CreacionExitosa.aspx");
                    }  
                    else
                        LabelError.Text = "Hubo un error creando el acta. El servidor no se encuentra activo,\n hubo un error interno de servidor.";

                }
                catch (Exception ex)
                {

                    LabelError.Text = "Hubo un error creando el acta. El servidor no se encuentra activo,\n hubo un error interno de servidor.";
                }
            }
            
        }
    }
}